This patent relates generally to computer operating system and BIOS level features for providing enhanced debugging capability to users and builders of large-scale computer systems, particularly multiprocessor computer systems. It can be applied to such Systems having Service Processors and to those which do not have Service Processors.
Computer systems that stop running, hang, or freeze, need to be studied to find out what went wrong, in order to fix the problem with some degree of confidence. Traditionally this meant dumping the core memory and looking at the data in it to discover what went wrong. While there are many other things one can do, this traditional operation is still valuable. Unfortunately, rebooting the System destroys the memory image from the failure. Traditional methods relied on debugging the problem in real-time, looking at the memory live. This approach is impractical from a customer point of view where the system needs to be halted for an undetermined amount of time.
Unfortunately, many modern systems don't have a way to dump the core memory from such systems without a process or hardware to prevent the memory image from being corrupted first. For example, when a running an X86 or other INTEL-architecture operating system, and it “freezes” (that is, it no longer responds to input or raising of an NMI (Non-maskable Interrupt) or fails to take a memory dump), it is very difficult to diagnose the problem without the ability to capture the contents of memory for analysis, but there is no current facility to obtain the needed uncorrupted memory dump. Thus, X86 and other INTEL-architecture operation system computers can benefit from such a facility and would be a valuable contribution to the use of the technology.
The inventors herein employ the reboot process itself to assist in capturing the memory image, which is unlike the prior designs which used non-reboot processes for looking at the memory images. Further, we are able to send the memory image to long term storage for analysis at a later time and/or other location.
Appropriate background documentation for understanding the X86 environment include:                1. MICROSOFT WINDOWS operating system 2003 DDK (build 3790)—contains the compilers used for the BCD program.        2. The Undocumented PC 2nd edition (for INT information) ISBN 0-201-47950-8—for the documentation of the BIOS INT 10h, INT 13h, and INT 15h interfaces.        3. IA-32 INTEL microprocessor Architecture Software Developer's Manual Volumes 1-3 (Order numbers 245470, 245471, and 245472).        4. Advanced Configuration and Power Interface Specification Revision 2.0 Jul. 27, 2000 Chapter 15 for the System Address Map Interface.        
It should be noted that the concepts taught herein can be applied to IA64, EFI, and possibly other processor computer environments with appropriate modification.